home *** CD-ROM | disk | FTP | other *** search
/ Power CD / Power CD ATARI-Rechner Lieben.iso / UTILITY / HD_INFO / HDINFO.TXT next >
Encoding:
Text File  |  1989-12-05  |  12.5 KB  |  228 lines

  1. R.F.I. Ralf Fitzner Infotronik                   Frankfurt, d. 30.06.89
  2. Inh.: Ralf Fitzner 
  3. Am Alten See 21
  4. 6000 Frankfurt 90 - Rödelheim
  5.  
  6. BTX     : 0697895704-0001 
  7. Mailbox : 06174/5355 (300-1200-2400/8/N/1)  User# 1111 
  8. FAX     : 06174/3834
  9. Telex   : 1631 btx d
  10.  
  11. So... Nun hab ich einige Wochen gebastelt, und hier ist das Ergebnis :
  12.  
  13. HDInfo , damit die Übersicht nicht verloren geht...
  14.  
  15. Das Programm ist natürlich in GfA-Basic geschrieben. (Was sonst...) 
  16.  
  17. Leider mußte ich noch GfA-Basic 2.02 nehmen,  da der Compiler für 3.07 noch 
  18. nicht  fertig  war.  Daher  sind die  Zahlenwerte  nicht  gerunded  sondern 
  19. abgeschnitten. Aber was macht das schon. 
  20.  
  21. Besonders stolz bin ich darauf, das mein Programm nicht nur in langweiligem 
  22. schwarz/weiß  läuft,   sondern  auch  mit  mehreren  Farben  in   mittlerer 
  23. Auflösung. 
  24.  
  25. Warum ich nicht den Original Basic-Source-Code 'rausgebe ?!?
  26.  
  27. Nun,  dies ist nicht mein erstes PD-Programm.  Und ich mußte schon mehrmals 
  28. feststellen,  daß  es für viele Leute unheimlich reizvoll ist,  als  erstes 
  29. meinen Namen 'rauszuschmeißen. Und da man mit PD-Programmen schon kein Geld 
  30. verdienen kann,  so möchte ich doch zumindest als Belohnung für die  Arbeit 
  31. MEINEN Namen unten stehen haben...  
  32.  
  33.  
  34. Soooo... 
  35. Das Programm an sich ist wohl nicht weiter  erklärungsbedürftig. Ich möchte 
  36. nur darauf hinweisen,  daß ich keine Gewähr übernehme,  wenn mehr als  eine 
  37. Harddisk angeschlossen ist, oder jemand ein Fremdfabrikat benutzt. 
  38. Dieses Programm ist getestet mit je einer SH204/5 und Megafile 20/30/60.
  39. (Vielen Dank an die Firma KFC-Computer in Königstein.)
  40. Insbesondere  läuft  dieses  Programm  natürlich  falsch,  wenn  nicht  der 
  41. original ATARI AHDI-Treiber benutzt wird.  Aber eigentlich sollte dies  die 
  42. Regel  sein.  (Schönen  Gruß  an meinen Freund Uli  Eickmann  und  seine  8 
  43. Bootpartitions...) 
  44.  
  45. Leider dauert es bei den "alten" Tos-Versionen, einschließlich Blitter-Tos, 
  46. furchtbar lange bis die Werte eingelesen sind. Erst das "neue" Tos 1.4, das 
  47. z.Zt. in der Version vom 22.02.89 als ROM-Version durch die Lande geistert, 
  48. macht richtig Dampf, und ist bis zu 10 mal schneller.
  49.  
  50. Hmmm....
  51. Also wer tatsächlich bis hierhin gelesen hat,  den interessiert  vielleicht 
  52. auch noch, wie die einzelnen Daten erzeugt werden.
  53.  
  54. Zunächst einmal fragt das Programm nach der Bildschirmauflösung.  Dazu wird 
  55. eine XBIOS Funktion benutzt,  die je nach Auflösung eine 0,1 oder 2 (hohe ) 
  56. liefert : mode=xbios(4)
  57. Und wenn mode=0 ist, dann geht's leider nicht weiter.
  58.  
  59. Ich hab dann auch noch kurz nachgesehen,  was sie denn so für  RAM-Speicher 
  60. eingebaut  haben.  Auch  wenn sie 2.5KByte haben sollten stellt  das  keine 
  61. Schwierigkeiten  für's  Programm dar.  Da gibts nämlich schon  wieder  eine 
  62. Systemvariable  an der Adresse $FF801,  und da steht drin,  wie die  beiden 
  63. RAM-Bänke  bestückt sind.  Übrigens wäre es auch möglich einen ST mit  256k 
  64. oder  mit 640KByte zu bestücken,  aber was möglich ist muß nicht  unbedingt 
  65. gut sein...
  66. Wenn sie sich wundern sollten,  wo denn die ganzen Bytes hin sind,  die  da 
  67. als  belegt gekennzeichnet sind,  dann geht es Ihnen nicht anders als  mir. 
  68. Also 32KByte gehören schonmal zum Bildschirmspeicher.  Na und dann gibts da 
  69. eine  Menge  Systemvariablen.  Aber ich bin auch nicht  auf  über  100KByte 
  70. gekommen. Nun ja, wird schon richtig sein...
  71.  
  72. Dann wird nachgesehen, was da so an Laufwerken vorhanden ist. Das mache ich 
  73. mit der BIOS(10) Funktion.  Diese liefert als Rückmeldung einen  Wert,  der 
  74. noch Bitweise kontrolliert werden muß.  Bit 0 = Laufwerk A ,  Bit 1 = LW  B 
  75. usw.  Dabei  habe ich auch daran gedacht,  das man ja vielleicht auch  eine 
  76. RAM-Disk installiert hat z.B.  als C,D oder G,H.  Na jedenfalls kommt  mein 
  77. Programm damit klar. Aber wie  gesagt, wenn  Sie  Scheibenkleisterverdorben
  78. sind, oder bei  Uli  eine  EX-Harddisk  gekauft  haben,  können  Sie dieses
  79. Programm vergessen. Mehr als 4 Partitions mag es nicht so richtig.
  80.  
  81. Dann  werden  ein paar Striche und Boxen gezeichnet,  damit die  Daten  den 
  82. richtigen Rahmen haben...
  83.  
  84. Um  die TOS-Version zu erkennen habe ich nicht etwa einfach mit  GEMDOS(48) 
  85. nachgesehen.  Da bekommt man nämlich für das alte RAM-TOS (1.1) und für das 
  86. erste  ROM-TOS  (1.2 vom 06.02.86) die gleiche Rückmeldung.  Also  hab  ich 
  87. einfach mal bei der Adresse $FC0018 nachgesehen.  In meinem ST-INTERN steht 
  88. nämlich,  daß  da das Erstellungsdatum sein soll.  Falls  irgentjemand  mit 
  89. Boot-Roms  und  RAM-TOS seine Harddisk betreibt (Was eigentlich  gar  nicht 
  90. gehen  dürfte,  aber doch funktioniert...) steht an der  Adresse  natürlich 
  91. viel Blödsinn,  woraus das Programm dann schließt, das Boot-Roms eingesetzt 
  92. sind.  
  93.  
  94. Danach wird nachgesehen, ob ein Blitter im Gehäuse verstaubt. Dazu wird die 
  95. XBIOS(64) Funktion benutzt.  Tjaaaa, werden da manche sagen, diese Funktion 
  96. gibts  ja im TOS 1.2 noch gar nicht.  Aber das interessiert  mein  Programm 
  97. nicht  weiter.  Wenn keine Rückmeldung kommt,  dann ist eben  kein  Blitter 
  98. drin. Klare Sache und damit hopp. (War das nicht von Kempowski ?)
  99.  
  100. Und weil ich noch ein wenig Platz hatte,  hab ich noch nachgesehen,  ob  da 
  101. vielleicht  ein  Drucker ONLINE am Kabel hängt.  Dazu gibt's  die  Funktion 
  102. GEMDOS(17). 
  103. Wenn  sie Kapitalist sein sollten,  und sich einen  LASERdrucker  geleistet 
  104. haben,  dann  kann  ich Ihnen nicht helfen.  Ich prüfe  nur  die  parallele 
  105. Schnittstelle, und bin für DMA nicht zuständig.
  106.  
  107. So,  jetzt  gehts  dann endlich los.  Wie sagt mir die  Harddisk,  wie  sie 
  108. formatiert  und  partitioniert wurde...  Das habe ich mich  auch  2  Wochen 
  109. gefragt.  Bis  ich in einem uralten Assembler-Buch von Markt&Technik  einen 
  110. Hinweis  auf einen BIOS-PARAMETER-BLOCK fand.  Da legt  das  Betriebssystem 
  111. doch tatsächlich eine Liste an,  wo drin steht, was das Laufwerk so bietet. 
  112. Sektorgröße,Cluster Anzahl der Daten-Cluster usw.  Und mit ein bißchen PEEK 
  113. und BIOS(7,LW) kommt man an die Werte.  Bloß...  irgentwie fehlen da  immer 
  114. 2048 Byte.  Wo die hingehören hab ich bisher noch nicht rausbekommen,  aber 
  115. es müßten eigentlich zur Datenspeicherung 2 Cluster mehr da sein. Na ja, da 
  116. muß  man mit Leben.  Leider steht in diesem BPB nicht,  was da so  für  die 
  117. FAT's  und  das  Directory  'draufgeht.  Also mußte  es  noch  eine  andere 
  118. Möglichkeit geben,  um an die wirklich formatierten Sektoren zu kommen.  Da 
  119. bleibt  dann  nichts  anderes mehr übrig,  als  den  Bootsektor  von  jeder 
  120. Partition auszulesen und zu zerstückeln.  Da darf man dann nicht mit  INTEL 
  121. und MOTOROLA Schreibweise durcheinanderkommen. Zum Auslesen des Bootsektors 
  122. nimmt man den BIOS4 Befehl. Im GfA-Basic 3.0 Handbuch steht auf Seite 12-16 
  123. wie   man   den  Befehl  anwendet.   Aber  woher  bekommt  man   da   einen 
  124. Speicherbereich,  in den die Daten geschrieben werden ?  Zu 64er Zeiten war 
  125. das eigentlich kein Problem.  Irgentwo waren da immer ein paar Bytes übrig. 
  126. Aber  man  kann  doch  nicht  einfach  sagen  :   So,   nun  nimm  mal  den 
  127. Speicherbereich da irgentwo ab $5000 oder was weiß ich wo.  Und schließlich 
  128. programmieren  wir nicht in Assembler,  wo das Programm eine Anweisung  zum 
  129. Speicherreservieren  kennt.  Ums kurz zu machen :  In  meiner  Verzweiflung 
  130. einen freien Speicherbereich zu finden,  bin ich beim Durchblättern des 3.0 
  131. Handbuchs  auf  die  Seite 2-41 gekommen.  Da  steht  eine  Variable  HIMEM 
  132. erklärt,  die  angibt,  ab welcher Adresse der Speicher nach  dem  Programm 
  133. wieder frei ist.  Na also,  da war ja endlich was,  wo man mit BIOS4  seine 
  134. Daten ablegen konnte,  und mit PEEK wieder abfragen.  So kommt man also  an 
  135. die tatsächlich formatierten Partitiongrößen. Die Größen für die FAT's sind 
  136. nicht   unbedingt  interessant.   Das  Directory  belegt  bei   Festplatten 
  137. 256*32Byte  = 16 Sektoren (Bei Floppys sind dies 112*32Byte = 7  Sektoren). 
  138. D.H.  das man auf eine Diskette nur max.112 Files speichern kann,  und  auf 
  139. einer   Harddisk-Partition  je  256. Beim TOS 1.4  ist   das  ein   bischen    
  140. anders. Da können es schon mal mehr als 256 Files pro Partition sein.
  141.  
  142. Aber das ist eigentlich uninteressant.  Auf jeden Fall muß man wissen,  das 
  143. eine Datei, auch wenn sie nur 1 Byte lang ist, auf der Harddisk mindestens 
  144. 1024  Byte  belegt !  Da wundert man sich dann nicht mehr,  wenn  bei  viel 
  145. Kleinkram   tatsächlich  hunderte  von  KBytes  verschwinden...   Mit   dem 
  146. "normalen" ZEIGE INFO wird die FAT durchsucht,  und aus den darin stehenden 
  147. Programmlängen  eine  Gesamtbelegungszahl gebildet.  Die ist  aber  relativ 
  148. uninteressant,  denn  wohl  jeder wird schon mal gemerkt  haben,  das  beim 
  149. Kopieren von Dateien,  die eigentlich passen müßten, plötzlich "Disk hat zu 
  150. wenig  Speicher" erscheint.  Und daher zeigt das Programm  die  tatsächlich 
  151. belegten Bytes an. 
  152.  
  153. Tja,  zur grafischen Ausgabe gibts nicht viel zu erklären. 6 Kreise, die so 
  154. nach  und  nach ausgefüllt werden.  Am linken Rand  wird  die  RAM-Belegung 
  155. angezeigt. Na ja...  Dann werden  die  aktiven Partitions dargestellt. Ganz
  156. rechts dann die gesamte  HD,  zusammengesetzt aus den einzelnen Partitions.
  157.  
  158. Hmmm, und dann noch die Sache mit der Zugriffszeit. Also, sie sollten nicht 
  159. annehmen,  das  diese angezeigte Zahl nun wirklich die  wahre  Zugriffszeit 
  160. ist. Sie müssen das mal so sehen. Da gibt es im Atari einen Timer, der eine 
  161. "Auflösung" von 200msec.  hat. Und dann gibt es die Harddisk, die schneller 
  162. als 100msec.  ist.  Und wie wollen Sie da eine Zugriffszeit im Bereich  von 
  163. z.B.  50msec.  messen ?  Also ich hab einfach 100 mal einen Sector von  der 
  164. Platte  in den Speicher eingelesen,  und die Gesamtzeit durch 100  geteilt. 
  165. Und  so  kommt  dann zum Schluß eine  Zugriffszeit  heraus.  Der  jeweilige 
  166. Sector,  der gelesen wird, wird zufällig ermittelt, aus der Gesamtzahl, der 
  167. auf der Partition vorhandenen Sektoren.  Daraus ergibt sich, das je kleiner 
  168. die Partition ist,  umso kürzer auch die Zugriffszeit ist.  Nehmen sie  den 
  169. Wert einfach als Anhaltspunkt.
  170.  
  171. Wenn bei Ihnen ganz unten rechts 00.01 Uhr stehen sollte ,  dann sollten sie 
  172. sich  überlegen,  ob Sie sich nicht eine Uhr einbauen  lassen ,  damit  mal 
  173. etwas Abwechslung in's Inhaltsverzeichnis kommt,  oder bevorzugen sie  etwa 
  174. die Darstellung als Bild ? Na ja, soll's auch geben...
  175.  
  176. Haben sie wirklich bis hierhin gelesen ???     Respekt,respekt.
  177.  
  178. Das Programm begann mal als 10 Zeiler.  Ich hatte gerade seit 2 Tagen meine 
  179. gebrauchte SH205 und wollte ein kleines Accesory schreiben,  das den freien 
  180. Speicherplatz der Platte ausgibt,  aber dann hat's mich mal wieder gepackt, 
  181. und dabei ist dieses Programm entstanden. Der Source-Code (blödes Wort) hat 
  182. nach  einer Woche etwa 11KByte erreicht,  und nach ein wenig Überlegen  kam 
  183. ich  dann unter 7.5KByte. Man soll gar nicht glauben,  was beim Mergen  und 
  184. Verschieben für ein Blödsinn an den unmöglichsten Stellen stehen bleibt. 
  185. Na,  und  dann  kam der Tag,  an dem ich aus  versehen  das  Quell-Programm 
  186. überschrieben  hatte,  und nur noch die Compilierte Version übrig  war.  Da 
  187. mußte ich dann nochmal komplett neu anfangen.  Dabei ist dann diese Version 
  188. 3.0 herausgekommen. Ich hoffe das sie nicht nur mir gefällt. 
  189.  
  190. Ich  hab  auch  noch  ein  kleines  "Zwischenprodukt"  meiner  Arbeit   mit 
  191. dazugelegt.  Da  ist  vorgeführt,  wie  man mit dem  BIOS4  Befehl  umgeht. 
  192. Vielleicht etwas umständlich, aber dafür übersichtlich.
  193.  
  194. OK,  ich weiß,  sie haben keine Lust mehr meinen Blödsinn weiter zu  lesen. 
  195. Kann ich verstehen. Hätte ich auch nicht gemacht.
  196.  
  197. Ich möchte noch kurz darauf hinweisen,  wo man sich die nötigen  Grundlagen 
  198. für ein solches Programm verschafft : 
  199.  
  200. ATARI ST Profibuch      (SYBEX 1988)
  201. ATARI ST Intern         (Data Becker)
  202. ATARI ST Assembler-Buch (Markt und Technik)
  203. GfA Handbuch TOS & GEM  (GfA-Systemtechnik)
  204. GfA BASIC 3.0 Handbuch  (GfA-Systemtechnik)
  205. Asterix auf Korsika     (EHAPA-Verlag)
  206.  
  207. Nein, Scheibenkleister habe ich nicht gelesen. 
  208.  
  209. Für die musikalische Untestützung danke ich den PUHDYS aus Ost-Berlin.
  210.  
  211. Das mit den 20,- für PD-Software muß nun wirklich nicht sein. Ich freu mich 
  212. schon, wenn Sie das Program nicht gleich wieder löschen...
  213.  
  214. MfG Fitzner
  215.  
  216. Aaaach....Haaaalt....Hab ich doch nochwas vergessen :
  217.  
  218. Ich hab mich vor ein paar Tagen selbständig gemacht.  Bei  mir  gibts  z.B. 
  219. Lüfterschalter, damit der Festplatten oder MEGA-Lüfter nur dann läuft, wenn 
  220. es  wirklich zu warm wird.  Oder auch SCART-Umschalter,  die wirklich  alle 
  221. Pin's umschalten. Oder BTX-Decoder, weil Mailboxen auf die Dauer langweilig 
  222. sind, oder alle Ersatzteile von ATARI,Tandon,Star,NEC,Schneider usw.
  223. Neugierig ? Na dann würd ich einfach mal weitere Info's anfordern.
  224. Bis dann...
  225.  
  226.  
  227.  
  228.